
static class TemplateMaps{

    static def test(){
        def map = [
            "/":'test/root.template->temp/dir_${tc.model.propertyBeanLike}_1,file_${tc.model.propertyClassLike}_1',
            "List":'test/getlist.template;test/child.template->temp/dir_2,file_2;test/child.template->temp/dir_21,file_21;',
            "String":'test/leaf.template',
            "List/String":'test/list-leaf.template',
            "default":'test/default.template'
        ]
        return map;
    }
    
    static def enumMap(){
        def map = [
            "/":'enum-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/domain,${tc.model.propertyClassLike}.java',
            "default":'empty.template'
        ]
        return map;
    }
    
    static def resource(){
        def map = [
            "/":'resource-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/resource,${tc.model.propertyClassLike}Resource.java',
            "default":'empty.template'
        ]
        return map;
    }
    
    static def converter(){
        def map = [
            "/":'converter-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/converter,${tc.model.propertyClassLike}Converter.java;converter-list-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/converter,${tc.model.propertyClassLike}ListConverter.java',
            "String" : "mapped/converter-field-string.template",
            "long" : "mapped/converter-field-long.template",
            "int" : "mapped/converter-field-int.template",
            "Integer" : "mapped/converter-field-int.template",
            "Long" : "mapped/converter-field-long.template",
            "date" : "mapped/converter-field-date.template",
            "Date" : "mapped/converter-field-date.template",
            "java.util.Date" : "mapped/converter-field-date.template",
            "Enum" : "mapped/converter-field-enum.template",
            
            "domain-imports:Enum" : 'mapped/domain-import.template',
			"domain-imports:ManyToOne" : 'empty.template',
			"domain-imports:OneToMany" : 'empty.template',
			"domain-imports:default" : 'empty.template',
            
            "default":'empty.template'
        ]
        return map;
    }
    
    static def domain(){
        def map = [
            "/":'domain-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/domain,${tc.model.propertyClassLike}.java',
            "String" : "mapped/domain-field-string.template",
            "long" : "mapped/domain-field-long.template",
            "int" : "mapped/domain-field-long.template",
            "Integer" : "mapped/domain-field-long.template",
            "Long" : "mapped/domain-field-long.template",
            "date" : "mapped/domain-field-date.template",
            "Date" : "mapped/domain-field-date.template",
            "java.util.Date" : "mapped/domain-field-date.template",
            "Enum" : "mapped/domain-field-enum.template",
            "ManyToOne" : "mapped/domain-field-many-to-one.template",
            "OneToMany" : "mapped/domain-field-one-to-many.template",
            /*"List" : 'mapped/domain-field-list.template;domain-child-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/domain,${tc.model.typeClassLike}.java',*/
            "default":"mapped/domain-field-string.template"
        ]
        return map;
    }
  /*  
    static def repositoryOldNotUsed(){
        def map = [
            "/":'repository-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/repository,${tc.model.propertyClassLike}Repository.java',            
            "List" : 'repository-child-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/repository,${tc.model.typeClassLike}Repository.java',
            "default":"empty.template"
        ]
        return map;
    }*/
    
    static def repository(){
        def map = [
            "/":'repository-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/repository,${tc.model.propertyClassLike}Repository.java',            
            "ManyToOne" : 'mapped/many-to-one-repository.template',
            "default":"empty.template"
        ]
        return map;
    }
    
    static def jsfBean(){
        def map = [
            "/":'bean-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/web,${tc.model.propertyClassLike}Bean.java',            
            "List" : 'bean-child-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/web,${tc.model.typeClassLike}Bean.java',
            "default":"empty.template"
        ]
        return map;
    }
	
	static def simpleJsfBean(){
        def map = [
            "/":'simple-bean-java.template->/src/main/java/<%=tc.model.packageName.replace(".", "/" )%>/web,${tc.model.propertyClassLike}Bean.java',            
            "domain-imports:Enum" : 'mapped/domain-import.template',
			"domain-imports:ManyToOne" : 'empty.template',
			"domain-imports:OneToMany" : 'empty.template',
			"domain-imports:default" : 'empty.template',
			
			"enum-values:Enum" : 'mapped/enum-values.template',
			"enum-values:default" : 'empty.template',
			
			"many-to-one-ph:ManyToOne" : 'mapped/many-to-one-page-helper.template',
			"many-to-one-ph:default" : 'empty.template',
			
            "default":"empty.template"
        ]
        return map;
    }
    
    static def form(){
        def map = [
            "/":'form-xhtml.template->/src/main/webapp/secured/${tc.model.typeBeanLike},form.xhtml', 
            /*"List" : 'form-child-xhtml.template->/src/main/webapp/secured/${tc.model.parent.typeBeanLike},${tc.model.typeBeanLike}-form.xhtml', */
            "String" : "mapped/form-field-string.template",
            "long" : "mapped/form-field-string.template",
            "Long" : "mapped/form-field-string.template",
            "int" : "mapped/form-field-string.template",
            "Integer" : "mapped/form-field-string.template",
            "date" : "mapped/form-field-date.template",
            "Date" : "mapped/form-field-date.template",
            "java.util.Date" : "mapped/form-field-date.template",
            "Enum" : "mapped/form-field-enum.template",
            
            "many-to-one:ManyToOne" : "mapped/form-field-many-to-one.template",
            "many-to-one:default":"empty.template", 
            
            "default":"empty.template" 
        ]
        /* mapping for "String", "long", "int", "Integer", "Long" is done with "default" key */
        return map;
    }
    
    static def detail(){
        def map = [
            "/":'detail-xhtml.template->/src/main/webapp/secured/${tc.model.typeBeanLike},detail.xhtml', 
            /*"detail-child:List" : 'mapped/detail-field-list.template;detail-child-xhtml.template->/src/main/webapp/secured/${tc.model.parent.typeBeanLike},${tc.model.typeBeanLike}-detail.xhtml', */
            "String" : "mapped/detail-field-string.template",
            "long" : "mapped/detail-field-string.template",
            "Long" : "mapped/detail-field-string.template",
            "int" : "mapped/detail-field-string.template",
            "Integer" : "mapped/detail-field-string.template",
            "Enum" : "mapped/detail-field-string.template",
            "date" : "mapped/detail-field-date.template",
            "Date" : "mapped/detail-field-date.template",
            "java.util.Date" : "mapped/detail-field-date.template",
            
            
            "many-to-one:ManyToOne" : "mapped/detail-field-many-to-one.template",
            "many-to-one:default":"empty.template", 
            
            "one-to-many:OneToMany" : "mapped/detail-field-one-to-many.template",
            "one-to-many:default":"empty.template", 
            
            "default":"empty.template" 
        ]
        /* "channel:default" key is not used because of 'complex' types like List. 
        they need special generation, that's why the default is 'empty.template' */
        return map;
    }
    
    static def list(){
        def map = [
            "/":'list-xhtml.template->/src/main/webapp/secured/${tc.model.typeBeanLike},list.xhtml;list-include-xhtml.template->/src/main/webapp/secured/${tc.model.typeBeanLike},list-include.xhtml', 
            /*"List" : 'list-child-xhtml.template->/src/main/webapp/secured/${tc.model.parent.typeBeanLike},${tc.model.typeBeanLike}-list.xhtml', */
            "String" : "mapped/list-field-string.template" ,
            "long" : "mapped/list-field-string.template" ,
            "Long" : "mapped/list-field-string.template" ,
            "int" : "mapped/list-field-string.template" ,
            "Integer" : "mapped/list-field-string.template" ,
            "Enum" : "mapped/list-field-string.template" ,
            "date" : "mapped/list-field-date.template",
            "Date" : "mapped/list-field-date.template",
            "java.util.Date" : "mapped/list-field-date.template",
            
            "ManyToOne":'list-many-to-one-xhtml.template->/src/main/webapp/secured/${tc.model.parent.typeBeanLike},list-by-${tc.model.propertyBeanLike}.xhtml', 
            
            
            "default":"empty.template" 
        ]
        /* mapping for "String", "long", "Long", "int", "Integer",  is done with "default" key */
        return map;
    }
    
    static def manyToOne(){
        def map = [
            "/":'many-to-one-xhtml.template->/src/main/webapp/secured/${tc.model.typeBeanLike},many-to-one.xhtml',            
            "list:String" : "mapped/list-field-string.template" ,
            "list:long" : "mapped/list-field-string.template" ,
            "list:Long" : "mapped/list-field-string.template" ,
            "list:int" : "mapped/list-field-string.template" ,
            "list:Integer" : "mapped/list-field-string.template" ,
            "list:Enum" : "mapped/list-field-string.template" ,
            "list:date" : "mapped/list-field-date.template",
            "list:Date" : "mapped/list-field-date.template",
            "list:java.util.Date" : "mapped/list-field-date.template",
            "list:default":"empty.template" ,
            
            "detail:String" : "mapped/sub-detail-field-string.template",
            "detail:long" : "mapped/sub-detail-field-string.template",
            "detail:Long" : "mapped/sub-detail-field-string.template",
            "detail:int" : "mapped/sub-detail-field-string.template",
            "detail:Integer" : "mapped/sub-detail-field-string.template",
            "detail:Enum" : "mapped/sub-detail-field-string.template",
            "detail:date" : "mapped/sub-detail-field-date.template",
            "detail:Date" : "mapped/sub-detail-field-date.template",
            "detail:java.util.Date" : "mapped/sub-detail-field-date.template",
            "detail:default":"empty.template", 
            
            
            "default":"empty.template" 
        ]
        /* mapping for "String", "long", "Long", "int", "Integer",  is done with "default" key */
        return map;
    }    
    
    static def view(){
        def map = [
            "/":'view-xhtml.template->/src/main/webapp/secured/${tc.model.typeBeanLike},view.xhtml', 
            "view-child:List":'view-child-xhtml.template->/src/main/webapp/secured/${tc.model.parent.typeBeanLike},${tc.model.typeBeanLike}-view.xhtml',
            
            "view-list:String" : "mapped/list-field-string.template",
            "view-list:long" : "mapped/list-field-string.template",
            "view-list:Long" : "mapped/list-field-string.template",
            "view-list:int" : "mapped/list-field-string.template",
            "view-list:Integer" : "mapped/list-field-string.template",
            "view-list:date" : "mapped/list-field-date.template",
            "view-list:Date" : "mapped/list-field-date.template",
            "view-list:java.util.Date" : "mapped/list-field-date.template",
            
            "view-detail:String" : "mapped/detail-field-string.template",
            "view-detail:long" : "mapped/detail-field-string.template",
            "view-detail:Long" : "mapped/detail-field-string.template",
            "view-detail:int" : "mapped/detail-field-string.template",
            "view-detail:Integer" : "mapped/detail-field-string.template",
            "view-detail:date" : "mapped/detail-field-date.template",
            "view-detail:Date" : "mapped/detail-field-date.template",
            "view-detail:java.util.Date" : "mapped/detail-field-date.template",
            
            "view-form:String" : "mapped/form-field-string.template",
            "view-form:long" : "mapped/form-field-string.template",
            "view-form:Long" : "mapped/form-field-string.template",
            "view-form:int" : "mapped/form-field-string.template",
            "view-form:Integer" : "mapped/form-field-string.template",
            "view-form:date" : "mapped/form-field-date.template",
            "view-form:Date" : "mapped/form-field-date.template",
            "view-form:java.util.Date" : "mapped/form-field-date.template",
            
            "default":"empty.template" 
        ]
        /* "channel:default" key is not used because of 'complex' types like List. 
        they need special generation, that's why the default is 'empty.template' */        
        return map;
    }
    
    static def viewTable(){
        def map = [
            "/":'view-table-xhtml.template->/src/main/webapp/secured/${tc.model.typeBeanLike},view-table.xhtml', 
            "view-child:List":'view-table-child-xhtml.template->/src/main/webapp/secured/${tc.model.parent.typeBeanLike},${tc.model.typeBeanLike}-view-table.xhtml',
            
            "table-head:String" : "mapped/table-head-field-string.template",
            "table-head:long" : "mapped/table-head-field-string.template",
            "table-head:Long" : "mapped/table-head-field-string.template",
            "table-head:int" : "mapped/table-head-field-string.template",
            "table-head:Integer" : "mapped/table-head-field-string.template",            
            "table-head:date" : "mapped/table-head-field-string.template",
            "table-head:Date" : "mapped/table-head-field-string.template",
            "table-head:java.util.Date" : "mapped/table-head-field-string.template",
            
            "table-body:String" : "mapped/table-body-field-string.template",
            "table-body:long" : "mapped/table-body-field-string.template",
            "table-body:Long" : "mapped/table-body-field-string.template",
            "table-body:int" : "mapped/table-body-field-string.template",
            "table-body:Integer" : "mapped/table-body-field-string.template",            
            "table-body:date" : "mapped/table-body-field-date.template",
            "table-body:Date" : "mapped/table-body-field-date.template",
            "table-body:java.util.Date" : "mapped/table-body-field-date.template",
            
            "view-detail:String" : "mapped/detail-field-string.template",
            "view-detail:long" : "mapped/detail-field-string.template",
            "view-detail:Long" : "mapped/detail-field-string.template",
            "view-detail:int" : "mapped/detail-field-string.template",
            "view-detail:Integer" : "mapped/detail-field-string.template",
            "view-detail:date" : "mapped/detail-field-date.template",
            "view-detail:Date" : "mapped/detail-field-date.template",
            "view-detail:java.util.Date" : "mapped/detail-field-date.template",
            
            "view-form:String" : "mapped/form-field-string.template",
            "view-form:long" : "mapped/form-field-string.template",
            "view-form:Long" : "mapped/form-field-string.template",
            "view-form:int" : "mapped/form-field-string.template",
            "view-form:Integer" : "mapped/form-field-string.template",
            "view-form:date" : "mapped/form-field-date.template",
            "view-form:Date" : "mapped/form-field-date.template",
            "view-form:java.util.Date" : "mapped/form-field-date.template",
            
            "default":"empty.template" 
        ]
        /* "channel:default" key is not used because of 'complex' types like List. 
        they need special generation, that's why the default is 'empty.template' */        
        return map;
    }    
/*
    static def domain(){
        def map = [
            "String" : "mapped/domain-field-string.template",
            "long" : "mapped/domain-field-long.template",
            "int" : "mapped/domain-field-long.template",
            "Integer" : "mapped/domain-field-long.template",
            "Long" : "mapped/domain-field-long.template",
            "date" : "mapped/domain-field-date.template",
            "Date" : "mapped/domain-field-date.template",
            "java.util.Date" : "mapped/domain-field-date.template",
            "List" : "mapped/domain-field-list.template"
        ]
        return map;
    }

    static def form(){
        def map = [
            "String" : "mapped/form-field-string.template",
            "long" : "mapped/form-field-string.template",
            "int" : "mapped/form-field-string.template",
            "Integer" : "mapped/form-field-string.template",
            "Long" : "mapped/form-field-string.template",
            "date" : "mapped/form-field-date.template",
            "Date" : "mapped/form-field-date.template",
            "java.util.Date" : "mapped/form-field-date.template"
        ]
        return map;
    }

    static def detail(){
        def map = [
            "String" : "mapped/detail-field-string.template",
            "long" : "mapped/detail-field-string.template",
            "int" : "mapped/detail-field-string.template",
            "Integer" : "mapped/detail-field-string.template",
            "Long" : "mapped/detail-field-string.template",
            "date" : "mapped/detail-field-date.template",
            "Date" : "mapped/detail-field-date.template",
            "java.util.Date" : "mapped/detail-field-date.template"
        ]
        return map;
    }

    static def list(){
        def map = [
            "String" : "mapped/list-field-string.template",
            "long" : "mapped/list-field-string.template",
            "int" : "mapped/list-field-string.template",
            "Integer" : "mapped/list-field-string.template",
            "Long" : "mapped/list-field-string.template",
            "date" : "mapped/list-field-date.template",
            "Date" : "mapped/list-field-date.template",
            "java.util.Date" : "mapped/list-field-date.template"
        ]
        return map;
    }

    static def domainChild(){
        def map = [
                "String" : "mapped/domain-field-string.template",
                "long" : "mapped/domain-field-long.template",
                "int" : "mapped/domain-field-long.template",
                "Integer" : "mapped/domain-field-long.template",
                "Long" : "mapped/domain-field-long.template",
                "date" : "mapped/domain-field-date.template",
                "Date" : "mapped/domain-field-date.template",
                "java.util.Date" : "mapped/domain-field-date.template"
            ]
        return map;
    }

    static def tableHead(){
        def map=[
            "String" : "mapped/table-head-field-string.template",
            "long" : "mapped/table-head-field-string.template",
            "int" : "mapped/table-head-field-string.template",
            "Integer" : "mapped/table-head-field-string.template",
            "Long" : "mapped/table-head-field-string.template",
            "date" : "mapped/table-head-field-string.template",
            "Date" : "mapped/table-head-field-string.template",
            "java.util.Date" : "mapped/table-head-field-string.template"
        ]
        return map;
    }

    static def tableBody(){
        def map=[
            "String" : "mapped/table-body-field-string.template",
            "long" : "mapped/table-body-field-string.template",
            "int" : "mapped/table-body-field-string.template",
            "Integer" : "mapped/table-body-field-string.template",
            "Long" : "mapped/table-body-field-string.template",
            "date" : "mapped/table-body-field-date.template",
            "Date" : "mapped/table-body-field-date.template",
            "java.util.Date" : "mapped/table-body-field-date.template"
        ]
        return map;
    }
*/    
}